package entidadesHibernate;

// Generated 09-nov-2014 14:55:34 by Hibernate Tools 3.4.0.CR1

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Titular generated by hbm2java
 */
@Entity
@Table(name = "titular", catalog = "bdtpmetodosagiles")
public class Titular implements java.io.Serializable {

	private int idTitular;
	private Domicilio domicilio;
	private String apellido;
	private String nombre;
	private String tipoDoc;
	private String dni;
	private Date fechaNacimiento;
	private String factorRh;
	private String grupoSanguineo;
	private boolean donanteOrgano;
	private Set<Licencia> licencias = new HashSet<Licencia>(0);

	public Titular() {
	}

	public Titular(int idTitular, Domicilio domicilio, String apellido,
			String nombre, String tipoDoc, String dni, Date fechaNacimiento,
			String factorRh, String grupoSanguineo, boolean donanteOrgano) {
		this.idTitular = idTitular;
		this.domicilio = domicilio;
		this.apellido = apellido;
		this.nombre = nombre;
		this.tipoDoc = tipoDoc;
		this.dni = dni;
		this.fechaNacimiento = fechaNacimiento;
		this.factorRh = factorRh;
		this.grupoSanguineo = grupoSanguineo;
		this.donanteOrgano = donanteOrgano;
	}

	public Titular(int idTitular, Domicilio domicilio, String apellido,
			String nombre, String tipoDoc, String dni, Date fechaNacimiento,
			String factorRh, String grupoSanguineo, boolean donanteOrgano,
			Set<Licencia> licencias) {
		this.idTitular = idTitular;
		this.domicilio = domicilio;
		this.apellido = apellido;
		this.nombre = nombre;
		this.tipoDoc = tipoDoc;
		this.dni = dni;
		this.fechaNacimiento = fechaNacimiento;
		this.factorRh = factorRh;
		this.grupoSanguineo = grupoSanguineo;
		this.donanteOrgano = donanteOrgano;
		this.licencias = licencias;
	}

	public Titular(Domicilio domicilio, String apellido,
			String nombre, String tipoDoc, String dni, Date fechaNacimiento,
			String factorRh, String grupoSanguineo, boolean donanteOrgano) {
		this.domicilio = domicilio;
		this.apellido = apellido;
		this.nombre = nombre;
		this.tipoDoc = tipoDoc;
		this.dni = dni;
		this.fechaNacimiento = fechaNacimiento;
		this.factorRh = factorRh;
		this.grupoSanguineo = grupoSanguineo;
		this.donanteOrgano = donanteOrgano;
	}
	
	@Id
	@Column(name = "id_titular", unique = true, nullable = false, length = 11)
	public int getIdTitular() {
		return this.idTitular;
	}

	public void setIdTitular(int idTitular) {
		this.idTitular = idTitular;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "id_domicilio", nullable = false)
	public Domicilio getDomicilio() {
		return this.domicilio;
	}

	public void setDomicilio(Domicilio domicilio) {
		this.domicilio = domicilio;
	}

	@Column(name = "apellido", nullable = false, length = 25)
	public String getApellido() {
		return this.apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}

	@Column(name = "nombre", nullable = false, length = 35)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(name = "tipoDoc", nullable = false, length = 5)
	public String getTipoDoc() {
		return this.tipoDoc;
	}

	public void setTipoDoc(String tipoDoc) {
		this.tipoDoc = tipoDoc;
	}

	@Column(name = "dni", nullable = false, length = 10)
	public String getDni() {
		return this.dni;
	}

	public void setDni(String dni) {
		this.dni = dni;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "fechaNacimiento", nullable = false, length = 10)
	public Date getFechaNacimiento() {
		return this.fechaNacimiento;
	}

	public void setFechaNacimiento(Date fechaNacimiento) {
		this.fechaNacimiento = fechaNacimiento;
	}

	@Column(name = "factorRh", nullable = false, length = 5)
	public String getFactorRh() {
		return this.factorRh;
	}

	public void setFactorRh(String factorRh) {
		this.factorRh = factorRh;
	}

	@Column(name = "grupoSanguineo", nullable = false, length = 5)
	public String getGrupoSanguineo() {
		return this.grupoSanguineo;
	}

	public void setGrupoSanguineo(String grupoSanguineo) {
		this.grupoSanguineo = grupoSanguineo;
	}

	@Column(name = "donanteOrgano", nullable = false)
	public boolean isDonanteOrgano() {
		return this.donanteOrgano;
	}

	public void setDonanteOrgano(boolean donanteOrgano) {
		this.donanteOrgano = donanteOrgano;
	}

	@OneToMany(fetch = FetchType.EAGER, mappedBy = "titular")
	public Set<Licencia> getLicencias() {
		return this.licencias;
	}

	public void setLicencias(Set<Licencia> licencias) {
		this.licencias = licencias;
	}

}
